package org.example.kafka.test;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer;

import java.util.HashMap;

public class Producer {

    //todo  生产者代码
    public static void main(String[] args) {

        //todo 配置属性集合
        HashMap<String, Object> configMap = new HashMap<>();
        // todo 配置kafka 服务器链接地址
        configMap.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
        // todo 配置kafka生产数据为kv时  对产生的key 序列化
        configMap.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
        // todo 配置kafka生产数据kv时    对产生的v 进行序列化
        configMap.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName());
        // todo 创建kafka生产者对象
        KafkaProducer<String,String> producer = new KafkaProducer<String,String>(configMap);
        // todo 构造对象时需要传递 《topic主题》《key》《vaule》三个参数
        for (int i = 0;i<10;i++){
            ProducerRecord<String, String> producerRecord = new ProducerRecord<String, String>("test","key"+i,"vaule"+i);
            // todo 发送生产的数据
            producer.send(producerRecord);
        }
        // todo 关闭资源
        producer.close();
    }
}
